package com.jinzhi.common.utils.yongyou;

import com.google.gson.GsonBuilder;
import com.jinzhi.common.config.InvoiceConfig;
import org.apache.commons.lang3.StringUtils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
 * 用友 发票 配置参数
 * @author Administrator
 *
 */
public class ParameterUtil {

	private String buildFpqqlsh;

    public ParameterUtil(String buildFpqqlsh) {
        this.buildFpqqlsh = buildFpqqlsh;
    }

//    /**
//     * 构造requestdatas
//     *
//     * @return
//     */
//    public String buildRequestDatas(String name,BigDecimal price,String mobile,List<Object> list) {
//        List<Object> datas = new ArrayList<>();
//        Map<String, Object> data = new HashMap<>();
//        //请求发票流水号 必填
//        data.put("FPQQLSH", buildFpqqlsh);
//        //测试环境请一定要使用测试纳税人识别号("201609140000001")  必填
//        data.put("XSF_NSRSBH", InvoiceConfig.XSF_NSRSBH);
//        //购买方名称 必填
//        data.put("GMF_MC", name);
//        //金额 必填
//        data.put("JSHJ", price);
//        //开票申请人手机号
//        data.put("GMF_DZDH", mobile);
//        //开票人
//        data.put("KPR",InvoiceConfig.KPR);
//
//        //组织编码，测试环境请一定使用测试环境的组织编码
////        data.put("ORGCODE", "20160914001");
//        data.put("items", list);
//        datas.add(data);
//        GsonBuilder builder = new GsonBuilder();
//        return builder.create().toJson(datas);
//    }

    public String buildRequestDatas(String GMF_MC , String XSF_NSRSBH ,double money , List<Object> buildList) {
        List<Object> datas = new ArrayList<>();
        Map<String, Object> data = new HashMap<>();
        data.put("FPQQLSH", buildFpqqlsh);
        //测试环境请一定要使用测试纳税人识别号
        data.put("XSF_NSRSBH", "201609140000001");
        //data.put("XSF_NSRSBH", InvoiceConfig.XSF_NSRSBH);
        data.put("GMF_MC", GMF_MC);
        if((!XSF_NSRSBH.equals("undefined")) && StringUtils.isNotBlank(XSF_NSRSBH)){
            data.put("GMF_NSRSBH", XSF_NSRSBH);
        }
        data.put("KPR", "管理员");
        //组织编码，测试环境请一定使用测试环境的组织编码
        data.put("ORGCODE", "20160914001");
        //data.put("ORGCODE", InvoiceConfig.ORGCODE);
        data.put("JSHJ", money);
        data.put("items",buildList);
        datas.add(data);
        GsonBuilder builder = new GsonBuilder();
        return builder.create().toJson(datas);
    }

    /**
     * 构造request发票明细
     *
     * @return
     */
    public List<Object> buildItems() {
        List<Object> items = new ArrayList<>();
        Map<String, Object> data = new HashMap<>();
        //项目名称
        data.put("XMMC", "楼兰蜜语 休闲零食 地瓜紫薯干 水晶紫薯仔100g/袋[紫薯仔100g 水晶紫薯仔100g/袋 ]");
        //
        data.put("XMJSHJ", "1395.00");
        //税率16%需要写成0.16的格式
        data.put("SL", 0.1);
        //SPBM字段为商品税收分类编码，不同的商品会有不同的编码，不对应的话会影响报税，需要咨询下公司财务
        data.put("SPBM", "1070101010100000000");
        items.add(data);
        return items;
    }
    /**
     * url回掉配置
     *
     * @return
     */
    public String buildUrlConfigs() {
        List<Object> datas = new ArrayList<>();
        Map<String, Object> data = new HashMap<>();
        data.put("fpqqlsh", buildFpqqlsh);
        data.put("url", InvoiceConfig.URL_NOTIFY);
        datas.add(data);
        GsonBuilder builder = new GsonBuilder();
        return builder.create().toJson(datas);
    }

    public String buildUrlConfigs(String url) {
        List<Object> datas = new ArrayList<>();
        Map<String, Object> data = new HashMap<>();
        data.put("fpqqlsh", buildFpqqlsh);
        data.put("url", url);
        datas.add(data);
        GsonBuilder builder = new GsonBuilder();
        return builder.create().toJson(datas);
    }

    /**
     * 构造短信发送信息
     *
     * @return
     */
    public String buildSmsConfigs() {
        List<Object> datas = new ArrayList<>();
        Map<String, Object> data = new HashMap<>();
        data.put("fpqqlsh", buildFpqqlsh);
        data.put("address", "123123123123");
        datas.add(data);
        GsonBuilder builder = new GsonBuilder();
        return builder.create().toJson(datas);
    }

    /**
     * 构造email发送信息
     *
     * @return
     */
    public String buildEmailConfigs(String email) {
        List<Object> datas = new ArrayList<>();
        Map<String, Object> data = new HashMap<>();
        data.put("fpqqlsh", buildFpqqlsh);
        data.put("address", email);
        datas.add(data);
        GsonBuilder builder = new GsonBuilder();
        return builder.create().toJson(datas);
    }




}
